package TestSparkConversionOperator;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;

import java.util.Arrays;
import java.util.List;

public class SparkFlatMap {
    /**
     * 转换算子之flatMap
     * 将RDD的所有元素传入自定义的函数后，
     * 返回一个迭代器对象，
     * 然后将所有返回的迭代器的所有的元素构造成一个新的RDD
     * @param args
     */
    public static void main(String[] args) {
        SparkConf sparkConf = new SparkConf().setAppName("spark demo").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(sparkConf);
        JavaRDD<String> rdd = sc.textFile("./data/fsdfj.txt");

        JavaRDD<String> newRdd = rdd.flatMap((FlatMapFunction<String, String>) item -> {
            return Arrays.asList(item.split(" ")).iterator();
        });

        List<String> res = newRdd.collect();
        for (String s : res){
            System.out.println(s);
        }
    }
}
